import java.util.ArrayList;
import java.util.List;
class Solution {
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> ret=new ArrayList<>();//因为杨辉三角是靠二位数组来实现的，所以此处定义出一个二维数组
        List<Integer> list0=new ArrayList<>();//因为第0行没有前一行，需要特殊处理。第0行是一个一维数组，将其定义出来
        list0.add(1);//将第0行中的数值添加到一维数组中
        ret.add(list0);//将一维数组作为元素添加到二维数组中
        for(int i=1;i<numRows;i++){
            List<Integer> curRow=new ArrayList<>();
            curRow.add(1);//每一行的第一列数值为1
            List<Integer> preRow=ret.get(i-1);
            for(int j=1;j<i;j++){
                int x=preRow.get(j)+preRow.get(j-1);
                curRow.add(x);
            }
            curRow.add(1);//每一行的最后一个元素值为1
            ret.add(curRow);
        }
        return ret;//返回二维数组，也就是杨辉三角
    }
}
